<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>

    // 功能、参数、返回值、是否改变原数组  （四个方面去研究）
    // 1.arr.push();
        // var arr = ["hello",4,5,6,"world"];
        // console.log(arr)
        // var res = arr.push("zxt",242)
        // console.log(res);
        // 功能：在数组的最后添加数据，可以添加多个
        // 参数：要新增的数据
        // 返回值：添加数据之后数组的长度
    // 是否改变原数组：是

    // 2.arr.push();
        // var arr = ["hello",4,5,6,"world"];
        // console.log(arr)
        // var res = arr.unshift("zxt",242)
        // console.log(res);
        // 功能：在数组的开头添加数据，可以添加多个
        // 参数：要新增的数据
        // 返回值：添加数据之后数组的长度
        // 是否改变原数组：是

    // 3.arr.pop()
        // var arr = ["hello", 5, 6, 7, "world"]
        // console.log(arr);
        // var res = arr.pop();
        // console.log(res);
        // 功能：删除数组最后一个数据
        // 参数：无
        // 返回值：被删除的数据
        // 是否改版原数组：是

    // 4.arr.shift()
        // var arr=["hello",4,5,6,"world"]
        // console.log(arr);
        // var res=arr.shift();
        // console.log(res);
        // 功能：删除开头第一个数据、
        // 参数：无
        // 返回值：删除的数据
        // 是否改变原数组：是

    // 5.arr.splice()
        // var arr=["hello",3,4,5,"world"]
        // console.log(arr);
        // var res=arr.splice(2,1,"aaa",999);
        // console.log(res);
        // 功能：删除指定数据，并替换
        // 参数1：开始删除的位置，参数2：删除的个数，参数3：要插入到删除数据位置的内容  (可以是多个数据)
        // 返回值：删除的数据，以数组的形式展示
        // 是否改变原数组：是

    // 6.arr.slice()
        // var arr=["hello",4,5,6,"wrold"]
        // console.log(arr);
        // var res=arr.slice(2,4);
        // console.log(res);
        // 功能：截取数据
        // 参数1：开始截取的位置，参数2：截取到指定未知的前一个
        // 返回值：截取的数据，以数组的形式展示
        // 是否改变原数组：否

    // 7.arr.sort()
    // 情况1： 无参数
        // var arr=[4,6,51,7,9,3,2]
        // console.log(arr);
        // var res=arr.sort();
        // console.log(res);

    // 情况2 ： 有参数，是函数
        // var arr=[4,6,51,7,9,3,2]
        // console.log(arr);
        // var res = arr.sort(function(a, b){
        // return a-b;             //a-b为升序，b-a为降序
        // });
        // // console.log(res === arr);
        // console.log(res);

    // 功能:4
    //     情况1：如果无参数，默认是字符的排序规则
    //     情况2：如果有参数，是函数，函数返回了两个形参的差，此时的比较规则为数值
    // 返回值：排序之后的原数组
    // 是否改变原数组：是

    // 8、arr.concat()
            // var arr1=[1,2,3,];
            // var res=arr1.concat();
            // console.log(arr1);
            // console.log(res);

            // console.log(arr1.concat(4,5,67));
            // console.log(arr1.concat([9,8,7],["a","b"],{name:"admin",age:18}))
            // console.log(arr1);

            // 功能：用于连接两个或者多个数组
            // 参数：要连接的数据内容，所用参数可选，直接将所有参数合并之后以数组的形式显示
            // 是否改变原数组：否

        // 9.arr.join()
            // var arr=[1,3,5,7,9]
            // console.log(arr);
            // var res=arr.join("-")
            // console.log(res);
            // console.log(typeof res)     //用分隔符连起来的所有数据放入字符串中

            // console.log(arr)        //原有数组并没有被改变

            // 功能：根据指定的分隔符将数组中的所有元素放入一个字符串
            // 参数：要指定的分隔符
            // 返回值：数组中所有数据用分隔符连起来的字符串
            // 是否改变原数组：否

        // 10.arr.toString()
            // var arr=[3,6,8,2,5,1,7]
            // console.log(arr);
            // console.log(typeof arr)     //object
            // var res=arr.toString();
            // console.log(res);
            // console.log( typeof res)    //string
            // 功能：将数据转换成字符串，类似于没有参数的join
            // 参数：无
            // 返回值：转换后的字符串
            // 是否对原数组改变：否
        // 11.arr.reverse()
            // var arr=["hello",4,5,6,"world"]
            // console.log(arr);
            // var res=arr.reverse(666,"zxt");
            // console.log(res);
            // 功能：颠倒数组中元素的顺序
            // 参数：无
            // 返回值；颠倒后的数组
            // 是否改变原数组：是
</script>
</html>